package opf5.entities.repositorios;

import java.util.List;

import opf5.entities.dominio.Calificacion;
import opf5.entities.dominio.Equipo;
import opf5.entities.dominio.Infraccion;
import opf5.entities.dominio.Inscripcion;
import opf5.entities.dominio.Jugador;
import opf5.entities.dominio.Partido;
import opf5.entities.dominio.Propuesta;
import opf5.entities.inscripciones.CondicionDeInscripcion;
import opf5.entities.inscripciones.InscripcionCondicional;
import opf5.utilidades.Fecha;

public interface Factory {

	public abstract Inscripcion makeInscripcion(Jugador jugador,
			String tipoInscripcion);

	public abstract Jugador makeJugador(String nombre, String email, Fecha fecha);

	public abstract Propuesta makePropuesta(String nombreJugadaorPropuesto,
			Jugador jugador);

	public abstract Partido makePartido(Fecha fecha, String lugar);

	public abstract Equipo makeEquipo(List<Jugador> equipo);

	public abstract Inscripcion makeInscripcionCondicional(
			Jugador jugador);

	public abstract Inscripcion makeInscripcionEstandar(Jugador jugador);

	public abstract Inscripcion makeInscripcionSolidaria(Jugador jugador);

	public abstract Infraccion makeInfraccion(Fecha fecha, String motivo);

	Calificacion makeCalificacion(Jugador jugadorCalificador, Partido partido,
			int nota, String comentario);

	Inscripcion makeInscripcionCondicional(Jugador jugador, CondicionDeInscripcion condicion);

}